package com.zy.cat.service;

import java.util.List;
import java.util.Map;

import com.zy.cat.entity.dev.resp.CatDev5088InviteInfoResp;
import com.zy.cat.entity.dev.resp.CatDevHCInviteHistoryResp;
import com.zy.cat.entity.dev.resp.CatDevHCInviteInfoResp;
import com.zy.cat.entity.dev.resp.CatDevInviteTeamInfoResp;
import com.zy.cat.entity.dev.resp.CatDevInviteUrlInfoResp;
import com.zy.cat.entity.dev.resp.CatDevRemitRecordResp;
import com.zy.cat.entity.dev.resp.CatDevTeamRebateResp;
import com.zy.cat.entity.dev.resp.CatDevUserInfoResp;
import com.zy.cat.entity.dev.resp.CatDevUserInfoResp.TLJInfo;
import com.zy.cat.entity.dev.resp.CatDevZJInviteDetailedResp;
import com.zy.cat.entity.dev.resp.CatDevZJInviteInfoResp;
import com.zy.cat.entity.resp.Pages;
import com.zy.cat.entity.resp.ResultPage;

/**
 * 
 * @info 
 * @author Link
 * @date 2019-11-26 14:29
 */
public interface CatDevInviteService {

	/**
	 * 
	 * @info 获取个人邀请链接
	 * @author Link
	 * @date 2019-11-28 15:17
	 * @param rtype
	 * @param utype 0.正常邀请链接、1.互拆红包邀请，24小时后过期
	 * @param pid
	 * @return
	 */
	Map<String, String> getInviteUrl(int rtype,int utype,int ctype, String pid);

	/**
	 * 
	 * @info 获取邀请好友进度信息
	 * @author Link
	 * @date 2019-11-26 14:43
	 * @param rtype
	 * @param pid
	 * @return
	 */
	CatDevHCInviteInfoResp getHCInviteInfo(int rtype, String pid);

	/**
	 * 
	 * @info 好友点击邀请链接后统计邀请信息
	 * @author Link
	 * @date 2019-11-26 17:10
	 * @param rtype
	 * @param pid
	 * @param unionid
	 * @return
	 */
	Map<String, Object> setInviteInitInfo(int rtype,int ytype, String pid,String unionid);

	/**
	 * 
	 * @info 获取邀请好友进度信息
	 * @author Link
	 * @date 2019-11-28 15:24
	 * @param rtype
	 * @param pid
	 * @return
	 */
	CatDevZJInviteInfoResp getZJInviteInfo(int rtype, String pid);

	/**
	 * 
	 * @info 红包互拆奖励
	 * @author Link
	 * @date 2019-11-28 17:00
	 * @param rtype
	 * @param ltype
	 * @param pid
	 * @return
	 */
	CatDevHCInviteHistoryResp setHCInviteInfo(int rtype, int ltype, String pid);
	
	/**
	 * 开启新一轮互拆红包
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2019-12-10 10:34:55
	 * @param rtype
	 * @param pid
	 * @return
	 */
	Boolean openNewHCInviteInfo(Integer rtype, String pid);
	
	/**
	 * 查询用户本轮互拆红包是否已提现
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2019-12-03 02:15:02
	 * @param rtype
	 * @param pid
	 * @return
	 */
	CatDevHCInviteInfoResp getHCInviteRimit(int rtype,String pid);

	/**
	 * 获取用户邀请新人奖励明细
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2019-12-10 10:34:55
	 * @param rtype
	 * @param pid
	 * @return
	 */
	CatDevZJInviteDetailedResp getZJRewardDetailed(Integer rtype, String pid);

	/**
	 * 获取让好友打开APP的链接
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2019-12-10 10:34:55
	 * @param rtype
	 * @param pid
	 * @return
	 */
	Map<String, String> getOpenAppUrl(Integer rtype,Integer itype, String pid);
	
	/**
	 * 
	 * @info 9趣猫用户申请互拆提现
	 * @author lipengchao
	 * @apiNote	已完成
	 * @date 2020-02-13 11:35
	 * @param rtype
	 * @param pid 用户ID
	 * @param qtype 取款类型（0.微信、1.支付宝）
 	 * @param zaccount  提款支付宝账号
	 * @param zrealname 提款支付宝真实姓名
	 * @return
	 */
	CatDevRemitRecordResp remitHC(int rtype, String pid, int qtype,String zaccount, String zrealname);

	/**
	 * 获取邀请链接中邀请人信息
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2020-03-13 05:40:39 
	 * @param rtype
	 * @param key
	 * @return
	 */
	CatDevInviteUrlInfoResp getUrlInviterInfo(Integer rtype,Integer appId, String key);

	/**
	 * 
	 * @info 5088邀请信息
	 * @author Link
	 * @date 2020-06-18 10:47
	 * @param rtype
	 * @param pid
	 * @return
	 */
	CatDev5088InviteInfoResp get5088InviteInfo(Integer rtype, String pid);

	/**
	 * 
	 * @info 5088邀请者提现
	 * @author Link
	 * @date 2020-06-18 14:06
	 * @param pid
	 * @param rcode
	 * @param rtype
	 * @return
	 */
	Boolean set5088Inviteremit(String pid, long rcode, long rtype);

	
	/**
	 * 获取邀请团队信息
	 * @author lipengchao
	 * @date 2020-06-19 06:34:58 
	 * @param rtype
	 * @param pid
	 * @return
	 */
	CatDevInviteTeamInfoResp getMyTeamInfo(Integer rtype, String pid);

	/**
	 * 查询团队收入明细
	 * @author lipengchao
	 * @date 2020-06-20 09:44:21 
	 * @param pid
	 * @param pages
	 * @return
	 */
	ResultPage<CatDevTeamRebateResp> teamList(String pid, Pages pages);

	/**
	 *获取淘礼金奖励明细
	 * @param rtype
	 * @param pid
	 * @return
	 */
	List<TLJInfo> getZJTljDetailed(Integer rtype, String pid);
}
